User interfaces (UIs) allow the user of a computer system to interact with the system and to control the display of data. Typically, a UI has multiple functions represented by icons, buttons, links, etc., that may be used to display and/or control data.
Tree structures are often used in UIs in order to display hierarchical data in a manner that presents the data in the context of the hierarchy. For example, in an electronic mail (e-mail) application, an inbox containing e-mail messages may be displayed using a tree-based hierarchical structure, where the inbox contains folders that are parent nodes. Each folder includes e-mail messages that appear as child nodes.
In such hierarchical structures, when the amount of data to be displayed exceeds the size of the available data window, the benefit of viewing the desired data in relation to the hierarchy is lost because the user is required to scroll the data window in order to view the data and the hierarchy in its entirety. The hierarchical data represented in the tree structure on the UI is often based on a tree data structure. For example, the hierarchical data for the UI may be contained in a binary tree data structure, where each node in the tree has at most two child nodes.
Pagination may be used in a UI to provide a way to divide data into manageable pages in an effort to handle the display of large amounts of data. For example, results from a web search engine or a notification list of email messages in an email inbox are often presented to the user as a set of pages for the user to peruse with portions of the information (e.g., results from the web search engine, a notification list, etc.) displayed on separate pages.